package com.drg.center.entity.result;

import com.drg.center.entity.constants.BusinessDictCodeConstant;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.guaike.core.entity.annotation.DictConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@ApiModel("病例监测明细信息")
@Data
public class CaseMonitorVO implements Serializable {

    @ApiModelProperty("患者姓名")
    private String patientName;

    @ApiModelProperty("患者性别")
    private String patientSex;

    @ApiModelProperty("患者年龄（岁）")
    private Integer patientAge;

    @ApiModelProperty("患者年龄，天")
    private Integer ageDay;

    @ApiModelProperty("病区名称")
    private String departName;

    @ApiModelProperty("床位号")
    private String bedCode;

    @ApiModelProperty("主治医生")
    private String doctorName;

    @ApiModelProperty("医保类型")
    private String medicareType;

    @ApiModelProperty("入院日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private LocalDateTime inHospitalDate;

    @ApiModelProperty("住院天数")
    private Integer inpatientDays;

    @ApiModelProperty("his主要诊断名称")
    private String diagnosisName;

    @ApiModelProperty("his次要诊断名称")
    private String secondDiagnosisName;

    @ApiModelProperty("总费用")
    private BigDecimal totalCost;

    @ApiModelProperty("分组预测")
    private String drgName;

    @ApiModelProperty("病例类型（1:低倍率病例，2:高倍率病例）")
    @DictConvert(code = BusinessDictCodeConstant.caseType)
    private Integer caseType;

    @ApiModelProperty("基准点数")
    private String referencePoints;

    @ApiModelProperty("支付标准标准")
    private BigDecimal drgCostStandard;

    @ApiModelProperty("是否基础病组")
    private Boolean isBase;

    @ApiModelProperty("费率")
    private String ratio;

    @ApiModelProperty("权重")
    private String weight;

    @ApiModelProperty("预计结余")
    private BigDecimal expectedSurplus;

    @ApiModelProperty("诊断信息列表")
    private List<CaseMonitorDiagnosisVO> diagnosisVOS;

    @ApiModelProperty("手术信息列表")
    private List<CaseMonitorOperationVO> operationVOS;

    @ApiModelProperty("费用信息列表")
    private List<CaseMonitorCostVO> costVOS;

    @ApiModelProperty("医嘱信息列表")
    private List<CaseAdviceVO> adviceVOS;
}
